#pragma once

#include "..\common\types.h"
//#include "..\common\common.h"
#include "..\common\string.h"
#include "..\math\vector.h"

EE_EXPORT const int RENDER_MODEL = 1; 
EE_EXPORT const int RENDER_CAST_SHADOW = 2; 
EE_EXPORT const int RENDER_REFLECTED = 8; 
EE_EXPORT const int RENDER_LIGHTING = 16; 
EE_EXPORT const int RENDER_TRANSPARENT = 32; 
EE_EXPORT const int RENDER_REFRACTED = 64; 
EE_EXPORT const int RENDER_FLARE = 128; 
EE_EXPORT const int RENDER_OPAQUE = 256; 
EE_EXPORT const int RENDER_NOCLIPPING = 512; 
EE_EXPORT const int RENDER_DEFAULT = RENDER_MODEL | RENDER_CAST_SHADOW | RENDER_LIGHTING | RENDER_OPAQUE; 


struct Point
{
	float		position[3]; 
	float		radius; 
	float		color[3]; 
	const static unsigned int size; 
}; 

struct Vertex
{
	float	position[3]; 
	float	texCoord[2]; 
	
	const static unsigned int size; 
}; 

struct VertexComplex
{
	float	position[3];
	float	normal[3]; 
	float	tangent[3];
	float	texcoord[2]; 
	float	gicoord[2]; 
	
	const static unsigned int size; 
}; 
			
struct Particle
{
	float		position[3]; 
	float		velocity[3]; 
	float		acceleration[3]; 
	float		radius; 
	float		ambience; 
	float		life; 
	float		totallife; 
	float		color[4]; 
	const static unsigned int size; 
}; 

struct DeviceSettings
{
public:

	bool isFullscreen; 
	unsigned int screenWidth; 
	unsigned int screenHeight; 
	unsigned int depthBufferBits; 
	unsigned int colorBufferBits; 
}; 